package com.haohan.jingyuan.customer.dto.req;

import com.haohan.jingyuan.common.dto.BaseRequest;
import com.haohan.jingyuan.common.enums.AuthTypeEnum;
import com.haohan.jingyuan.common.validation.EnumValid;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 创建文件授权请求DTO
 * 
 * @ClassName CreateFileAuthRequest
 * @Description 创建文件授权请求参数
 * @Author hexijun
 * @Time 2025/11/05 14:00
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class CreateFileAuthRequest extends BaseRequest {
    
    /**
     * 客户ID
     */
    @NotBlank(message = "客户ID不能为空")
    private String customerId;

    /**
     * 授权类型：1-全部文件，2-指定文件
     * @see AuthTypeEnum
     */
    @NotNull(message = "授权类型不能为空")
    @EnumValid(enumClass = AuthTypeEnum.class, message = "授权类型必须是1(全部文件)或2(指定文件)")
    private Integer authType;

    /**
     * 文件id列表（file_key），当授权类型为2时必填
     */
    private List<String> fileIds;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空")
    private String userName;

    /**
     * 用户密码
     */
    @NotBlank(message = "用户密码不能为空")
    private String password;
}

